SQL Server Error Log管理
SQL Server除了每個(gè)
數(shù)據(jù)庫(kù)有Log文件,即LDF文件外,SQL Server自己本身也有一個(gè)Error Log,位置存在安裝目錄下,Widows
系統(tǒng)中l(wèi)og文件位于C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log。
www.2cto.com
Error log的文件數(shù)目可以配置,最多99個(gè),默認(rèn)6個(gè),文件編號(hào)為ERRORLOG.1,2,3,4.....,還有一個(gè)文件沒有編號(hào),就叫ERRORLOG,這個(gè)文件是SQL Server當(dāng)前的活動(dòng)日志文件(active log),這個(gè)文件無法刪除,其他的都可以刪除。也就是說,ERRORLOG文件里是最新的日志信息,其他的文件都是以前的信息。
每次SQL Server重啟動(dòng),所有的ERRORLOG文件要做一次切換,拿6個(gè)log文件來說,具體如下:
刪除ERRORLOG.6中的所有數(shù)據(jù) www.2cto.com
ERRORLOG.5的數(shù)據(jù)寫入到ERRORLOG.6中
ERRORLOG.4的數(shù)據(jù)寫入到ERRORLOG.5中
ERRORLOG.3的數(shù)據(jù)寫入到ERRORLOG.4中
ERRORLOG.2的數(shù)據(jù)寫入到ERRORLOG.3中
ERRORLOG.2的數(shù)據(jù)寫入到ERRORLOG.1中
ERRORLOG的數(shù)據(jù)寫入到ERRORLOG.1中
重新創(chuàng)建ERRORLOG文件
所以,如果SQL Server不重啟,ERRORLOG文件就會(huì)變得很大,解決辦法如下:
1. 如果需要保存就得Error log文件,則先把當(dāng)前的所有ERRORLOG文件copy到其他存儲(chǔ)介質(zhì)
www.2cto.com
2. 運(yùn)行命令: EXEC sp_cycle_errorlog,這個(gè)命令強(qiáng)制SQL Server做一次Error Log文件的切換
3. 把最大的log 文件刪除
如果需定期切換error log,一般可使用DBCC errorlog命令在一個(gè)sql server的agent job 來完成。
create procedure sp_cycle_errorlog
if (not (is_srvrolemember('sysadmin') = 1)) -- Make sure that it is the sysadmin role to execute the code.
begin
return -- here can raise an error.
return(1)
end
dbcc errorlog
return (0)